.\"   $Id: applybddnodeterm.3,v 1.1 2002/03/18 11:26:50 ludo Exp $
.\" @(#)applybddnodeterm.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic
.TH APPLYBDDNODETERM 3 "October 1, 1997" "ASIM/LIP6" "BDD FUNCTIONS"
.SH NAME
applybddnodeterm \- applies an operator on two \fBbdd\fP nodes.
.so man1/alc_origin.1
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
bddnode \(**applybddnodeterm( BddSystem, Oper, Index, BddNode )
  bddsystem \(**BddSystem;
  long       Oper;
  bddindex   Index;
  bddnode   \(**BddNode;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIBddSystem\fP
The \fBbdd\fP system.
.TP
\fIOper\fP
The binary operator.
.TP
\fIIndex\fP
The index of the terminal \fBbdd\fP node.
.TP
\fIBddNode\fP
The \fBbdd\fP node.
.SH DESCRIPTION
\fBapplybddnodeterm\fP computes the boolean function \fIBddNode\fP
\fIOper\fP and the terminal node corresponding to \fIIndex\fP
in the \fBbdd\fP system \fIBddSystem\fP. The \fIIndex\fP parameter
can take only the two following values BDD_INDEX_ONE and BDD_INDEX_ZERO.
If a null pointer is given, the default \fBbdd\fP system is used.
.br
.SH RETURN VALUE
\fBapplybddnodeterm\fP returns a pointer to the resulting \fBbdd\fP node
with its number of external reference incremented.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"bad operator xxx error !"
.ft R
.RS
The \fIOper\fP parameter must be a valid binary operator.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
   bddsystem  \(**BddSystem;
   bddcircuit \(**BddCircuit;
   bddnode    \(**BddNode;
   chain_list \(**Expr;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   addbddcircuitin( (bddcircuit \(**)0, "i0", 0, BDD_IN_MODE_FIRST );
   BddNode = applybddnodeterm( (bddsystem \(**)0,
                               ABL_XOR, BDD_INDEX_ONE,
                               searchbddcircuitin( (bddcircuit \(**)0, "i0" ) );
   Expr = convertbddcircuitabl( (bddcircuit \(**)0, BddNode );
   /* displays (not i0) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem \(**)0 );
   destroybddcircuit( (bddcircuit \(**)0 );
.ft R
.fi
.SH SEE ALSO
.BR bdd (1)


.so man1/alc_bug_report.1

